//package com.letu.plumelog.appender;
//
//import ch.qos.logback.classic.spi.ILoggingEvent;
//import ch.qos.logback.core.AppenderBase;
//import com.alibaba.fastjson.JSONObject;
//import com.letu.cache.redis.RedisOps;
//import com.letu.core.utils.SpringUtils;
//import com.letu.plumelog.dto.BaseLogMessage;
//import com.letu.plumelog.dto.CompressMessage;
//import com.letu.plumelog.dto.RunLogMessage;
//import com.letu.plumelog.util.LZ4Util;
//import com.letu.plumelog.util.LogMessageUtil;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.concurrent.ThreadPoolExecutor;
//
///**
// * className：RedisAppender
// * description：
// * time：2020-05-19.15:26
// *
// * @author Tank
// * @version 1.0.0
// */
//public class RedisAppender extends AppenderBase<ILoggingEvent> {
//    private String appName;
//    private String env = "default";
//    private int port;
//
//    private String redisHost;
//    private String redisPort;
//    private String redisAuth;
//    private String model = "standalone";
//    private String masterName;
//    private int redisDb = 0;
//    private String runModel;
//    private String expand;
//    private int maxCount = 100;
//    private int logQueueSize = 10000;
//    private int threadPoolSize = 1;
//    private boolean compressor = false;
//
//    public void setPort(int port) {
//        this.port = port;
//    }
//
//    public int getPort() {
//        return port;
//    }
//
//    public String getExpand() {
//        return expand;
//    }
//
//    public void setExpand(String expand) {
//        this.expand = expand;
//    }
//
//    public String getAppName() {
//        return appName;
//    }
//
//    public void setAppName(String appName) {
//        this.appName = appName;
//    }
//
//    public String getEnv() {
//        return env;
//    }
//
//    public void setEnv(String env) {
//        this.env = env;
//    }
//
//    public String getRedisHost() {
//        return redisHost;
//    }
//
//    public void setRedisHost(String redisHost) {
//        this.redisHost = redisHost;
//    }
//
//    public String getRedisPort() {
//        return redisPort;
//    }
//
//    public void setRedisPort(String redisPort) {
//        this.redisPort = redisPort;
//    }
//
//    public void setRedisAuth(String redisAuth) {
//        this.redisAuth = redisAuth;
//    }
//
//    public int getRedisDb() {
//        return redisDb;
//    }
//
//    public void setRedisDb(int redisDb) {
//        this.redisDb = redisDb;
//    }
//
//    public int getThreadPoolSize() {
//        return threadPoolSize;
//    }
//
//    public void setThreadPoolSize(int threadPoolSize) {
//        this.threadPoolSize = threadPoolSize;
//    }
//
//    public String getRunModel() {
//        return runModel;
//    }
//
//    public void setRunModel(String runModel) {
//        this.runModel = runModel;
//    }
//
//    public int getMaxCount() {
//        return maxCount;
//    }
//
//    public void setMaxCount(int maxCount) {
//        this.maxCount = maxCount;
//    }
//
//    public int getLogQueueSize() {
//        return logQueueSize;
//    }
//
//    public void setLogQueueSize(int logQueueSize) {
//        this.logQueueSize = logQueueSize;
//    }
//
//    public boolean isCompressor() {
//        return compressor;
//    }
//
//    public void setCompressor(boolean compressor) {
//        this.compressor = compressor;
//    }
//
//    public String getModel() {
//        return model;
//    }
//
//    public void setModel(String model) {
//        this.model = model;
//    }
//
//    public String getMasterName() {
//        return masterName;
//    }
//
//    public void setMasterName(String masterName) {
//        this.masterName = masterName;
//    }
//
//    @Override
//    protected void append(ILoggingEvent event) {
//        if (event != null) {
//            send(event);
//        }
//    }
//
//    protected void send(ILoggingEvent event) {
//        String message = null;
//        final BaseLogMessage logMessage = LogMessageUtil.getLogMessage(appName, env, event, runModel, port);
////        if (logMessage instanceof RunLogMessage) {
////            message = LogMessageUtil.getLogMessage(logMessage, event);
////        }
//        //压缩
//        List<String> list = new ArrayList<>();
//        list.add(JSONObject.toJSONString(logMessage));
//        CompressMessage compressMessage = LZ4Util.compressedMessage(list);
//
//
////        System.out.println(JSONObject.toJSONString(event));
////        System.out.println(String.format("message is %s", message));
//    }
//
//    @Override
//    public void start() {
//        super.start();
//        System.out.println("开始执行日志打印");
//    }
//}
